#include<regex>
#include<iostream>
#include<string>

int main()
{
    std::string str = "GET /baidu/login?name=cqy&password=123321 HTTP=1.1\r\n";
    //?name=cqy&password=123321
    std::smatch smh;
    std::regex e("(GET|PUST|PUT) ([^?]*)(?:\\?(.*))? (HTTP=1.[01])(?:\n|\r\n)?");
    //  ?:表示进行捕捉  ?:[\n|\r\n]?   ?表示0次或1次
    std::regex_match(str,smh,e);
    int i = 0;
    for(auto e:smh)
    {
        std::cout<<i++<<":";
        std::cout<<e<<std::endl;
    }
    return 0;
}